package io.github.echarts.model.adapter;

import io.github.echarts.model.ChartModel;
import io.github.echarts.model.context.ConfigurationContext;
import io.github.echarts.option.EChartOption;

/**
 * 基本属性适配器。
 * 该类负责处理图表的基本属性设置，如背景颜色等。
 */
public class BasicPropertyAdapter {
    
    /**
     * 适配基本属性
     * <p>
     * 该方法负责设置图表的基本属性，如背景颜色等。
     * 不再包含硬编码的默认值，而是将默认值信息存储到配置上下文中，
     * 以便后续使用主题系统统一应用。
     * </p>
     *
     * @param option 配置选项
     * @param model 图表模型
     * @param context 配置上下文
     */
    public void adaptBasicProperties(EChartOption option, ChartModel model, ConfigurationContext context) {
        // 存储原始配置到上下文
        if (option.getBackgroundColor() != null) {
            context.addInfo("userBackgroundColor", option.getBackgroundColor());
        }
        
        // 暂时保持直接设置背景色的逻辑，后续将由主题系统接管
        if (option.getBackgroundColor() != null) {
            model.setBackgroundColor(option.getBackgroundColor());
        } else {
            // 将默认值信息存储到上下文，而非直接设置到模型
            context.addInfo("defaultBackgroundColor", "#ffffff");
        }
        
        // 动画设置
        if (option.getAnimation() != null) {
            context.addInfo("animation", option.getAnimation());
        } else {
            context.addInfo("defaultAnimation", false);
        }
        
        // 其他基本属性的默认值存储在上下文中，以便后续处理
        context.addInfo("defaultBorderColor", "#cccccc");
        context.addInfo("defaultContainBorder", false);
    }
} 